System, device, and method of media delivery optimization

ABSTRACT

A method for alleviation of congestion in a mobile communications network includes detecting congested cells in the mobile communications network, identifying subscribers with active data sessions in the congested cells; and optimizing bandwidth usage for at least one of the identified subscribers. A bandwidth optimization system includes a network sampling interface to receive at least subscriber, cell and data session identifiers from a network data packet sampler, where the sampler identifies the identifiers from internal data traffic within a mobile communications network, and a network awareness engine (NAE) to at least cross reference the identifiers with external data traffic output by the mobile communications network to at least detect congested cells and associated subscriber data sessions emanating from the mobile communications network.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a reissue of U.S. Pat. No. 9,578,547, issued Feb.21, 2017, filed on Aug. 25, 2015, as U.S. patent application Ser. No.14/834,450, which is a continuation of U.S. patent application Ser. No.13/519,591, filed on Nov. 14, 2012, now U.S. Pat. No. 9,137,700; whichis a national phase of PCT International Application NumberPCT/IB2010/056135, filed on Dec. 30, 2010, published as WO 2011/080714,which claims priority and benefit from U.S. Provisional PatentApplication No. 61/282,220, filed on Dec. 31, 2009, all of which arehereby incorporated by reference in their entirety.

FIELD OF THE INVENTION

The present invention relates to network congestion generally, and tothe optimal usage of bandwidth to alleviate such congestion inparticular.

BACKGROUND OF THE INVENTION

“Network congestion” occurs when the demand for bandwidth outstrips thesupply. Optimally, a network would have sufficient bandwidth to supportany rate of throughput required by its users. However, most networks donot have constant levels of bandwidth usage; aggregate demand forbandwidth typically varies from extreme to extreme in accordance withboth cyclic factors as well as random events. It is therefore seldomcost/effective to maintain a level of reserve bandwidth capacity thatwould be sufficient to address any and all resource demands, in any andall situations. Accordingly, most networks suffer at some time oranother from network congestion. As a network becomes congested, itsusers may typically experience a combination of lengthened responsetimes, increased error rates, dropped connections, etc.

Network congestion does not necessary involve the entire network. Agiven area may become congested without necessarily impacting on therest of the network. Such partial, or “local” congestion is generallymore likely to occur when the network's resources are staticallyassigned to a given area and cannot be easily reassigned to compensatefor congestion elsewhere.

For example, mobile communications networks, which typically employ“cellular” coverage, are particularly susceptible to local congestion.In such networks, the geographic area served by the mobile network isdivided up into cells, and each cell is serviced by a mobile stationthat provides connectivity to whichever subscribers happen to be in thecell at a given time. Multiple subscribers simultaneously attempting touse the same mobile station can congest a cell, even though the rest ofthe network may have excess capacity.

The number of subscribers necessary to congest a cell is a function ofhow many there are and how much bandwidth each requests from thenetwork. Typically, the total bandwidth available to a mobile station ina 3GPP-HSPA network is 7.2 Mbps. A subscriber downloading media contentwill typically use approximately 400-1000 Kbps in bandwidth.Accordingly, depending on the circumstances and protocol overhead as fewas four or five subscribers actively downloading media content cancongest a single cell. In fact, when using “misbehaving” peer-to-peerprotocols that are optimized to grab as much bandwidth as possible, asingle subscriber can use up all of the available bandwidth in a givencell.

A number of media delivery optimization (MDO) methods are used forcombating network congestion caused by the downloading of media content.One such method is “transcoding”. Transcoding includes reformatting themedia content to be downloaded via the network to a different,presumably more efficient encoding technique that requires lessbandwidth. For example, a media file identified as being in MPEG2 formatmay be converted to H264 format which requires less bandwidth fortransmission while maintaining more or less the same quality.

Another such method is “transrating” which entails reducing the totalmedia content bit rate by either manipulating the frame rate, and/orreducing the number of frames without changing the encoding technique.Transrating thus effectively reduces the quality of the media stream.However as with transcoding, the extent to which it is used determineswhether the reduction in quality is acceptable and/or even perceived bythe end user.

“Traffic shaping” is also commonly used to prevent congestion fromdeveloping. Traffic shaping entails the enforcement of policies forbandwidth usage. Examples of such policies include: minimum bit rates,maximum bit rates, relative prioritization, etc.

Another congestion reduction method is buffer management or“Time-to-view (TTV) manipulation”. TTV manipulation entails matching thedownload rate via the network to that of the viewing rate (e.g. thestreaming rate according to which the media content is ultimately playedon the subscriber's communication device). This method is predicated onthe fact that many devices are capable of downloading media contentfaster than they can play it, thus artificially raising the demand forbandwidth while they download, especially in cases where the mediacontent ultimately isn't used in its entirety (e.g., viewing only 10seconds of a 3 minute video clip while most of it was already “buffered”due to fast a download rate).

Caching is used to reduce the overhead required for repeated delivery ofthe same media content, often in combination with either transcoding ortransrating. A copy of the media content may be cached on the mobilenetwork, thus reducing the necessity of repeated transactions todownload it from the source, typically an external content server. Whencombined with transcoding or transrating, the stored copy may be inaltered format thus saving the overhead of reformatting the content foreach individual request.

Media link adaptation (MLA) involves a transport protocol in which linkconditions (between subscriber and the network) are sensed and used tosignal a media content server to change and adapt bit rate accordingly.One example of an MLA is HTTP Live. HTTP Live's protocol calls forparticipating content servers to maintain multiple versions of theoriginal content in varying sizes and formats. The specific versionsupplied by the server for download is determined in accordance with thelink conditions.

SUMMARY OF THE PRESENT INVENTION

There is provided, in accordance with a preferred embodiment of thepresent invention, a method for alleviation of congestion in a mobilecommunications network, the method including detecting congested cellsin the mobile communications network, identifying subscribers withactive data sessions in the congested cells, and optimizing bandwidthusage for at least one of the identified subscribers.

Further, in accordance with a preferred embodiment of the presentinvention, the detecting includes receiving cell and data sessionidentifiers from an internal network data packet sampler, inspectingdata packets emanating from the mobile communications network to atleast determine bandwidth used for each current data session, crossreferencing the data session identifiers with each concurrent datasession to calculate aggregate bandwidth in use for each cell in themobile communications network according to associated the cellidentifiers, and determining that the cells with the aggregatedbandwidth exceeding a predetermined threshold are congested.

Still further, in accordance with a preferred embodiment of the presentinvention, the identifying includes receiving subscriber identifiersfrom the internal network data packet sampler, for each congested cell,cross referencing the data session identifiers with each concurrent datasession to identify subscribers with active data sessions in thecongested cells, and associating their bandwidth usage according to thebandwidth used for each data session.

Additionally, in accordance with a preferred embodiment of the presentinvention, the inspecting also includes determining a type ofapplication used in the current data session.

Moreover, in accordance with a preferred embodiment of the presentinvention, the inspecting also includes determining a specificapplication in use in the current data session.

Further, in accordance with a preferred embodiment of the presentinvention, the optimizing includes for each the identified subscriber,determining an optimization priority as per a subscriber profile,selecting at least one identified subscriber in each the congested cellfor optimization, determining at least one appropriate media deliveryoptimization (MDO) function at least in accordance with the subscriberprofile for each selected identified subscriber, and transmitting arequest to the mobile communications network to optimize the bandwidthusage for the selected identified subscriber in accordance with the atleast one appropriate MDO function.

Still further, in accordance with a preferred embodiment of the presentinvention, the appropriate MDO function is at least one of trafficshaping, where policies on user bandwidth are enforced on a persubscriber basis, transcoding, where media encoding used for the currentdata session is changed to a different encoding format to facilitate achange in bandwidth requirements, transrating, where a total mediacontent bit rate is reduced without changing the media encoding, andcaching, where a copy of media content is stored internally to avoidrepeated downloads from an external source.

Additionally, in accordance with a preferred embodiment of the presentinvention, the appropriate MDO function is time-to-view (TTV)manipulation, where delivery rate of media content is regulated togenerally match viewing rate on a communications device of the selectedidentified subscriber, the viewing rate detected during the inspecting.

Moreover, in accordance with a preferred embodiment of the presentinvention, the appropriate MDO function is media link adaptation (MLA),where a subscriber communications device uses a transport protocol tosignal a media content server regarding available bandwidth fordownloading particular media content, and the media content serverselects and downloads a version of the particular media content inaccordance with the available bandwidth.

Further, in accordance with a preferred embodiment of the presentinvention, the at least one appropriate MDO is a combination of at leasttwo appropriate MDOs.

Still further, in accordance with a preferred embodiment of the presentinvention, the optimizing also includes transmitting a request to themobile communications network to stop the optimizing in accordance withthe MDO for all associated selected identified subscribers if anassociated the cell is no longer congested.

Additionally, in accordance with a preferred embodiment of the presentinvention, the subscriber profile is stored in a subscriber profiledatabase (SPD), where the SPD contains at least an indication of maximumbandwidth allowed to each subscriber and is periodically updated inaccordance with subscriber information stored in the mobilecommunications network.

Moreover, in accordance with a preferred embodiment of the presentinvention, the SPD contains at least an indication of at least one MDOto use with each subscriber.

Further, in accordance with a preferred embodiment of the presentinvention, the indication of at least one MDO is provided for eachpredetermined level of congestion in the congested cell.

Still further, in accordance with a preferred embodiment of the presentinvention, the predetermined threshold is stored in a network topologydatabase (NTD), the NTD storing at least one the predetermined thresholdfor each cell in the mobile communications database.

Additionally, in accordance with a preferred embodiment of the presentinvention, the determining also includes determining a level ofcongestion.

Moreover, in accordance with a preferred embodiment of the presentinvention, the inspecting also includes deep packet inspection (DPI) todetect the bandwidth used and an identifier for the current datasession, where the identifier for the current data session is suitablefor the cross referencing.

Further, in accordance with a preferred embodiment of the presentinvention, the DPI detects at least a type of application in use for thecurrent data session.

Still further, in accordance with a preferred embodiment of the presentinvention, the DPI identifies a specific application in use for thecurrent data session.

There is also provided, in accordance with a preferred embodiment of thepresent invention, a bandwidth optimization system including a networksampling interface to receive at least subscriber, cell and data sessionidentifiers from a network data packet sampler, where the sampleridentifies the identifiers from internal data traffic within a mobilecommunications network, and a network awareness engine (NAE) to at leastcross reference the identifiers with external data traffic output by themobile communications network to at least detect congested cells andassociated subscriber data sessions emanating from the mobilecommunications network.

Moreover, in accordance with a preferred embodiment of the presentinvention, the system also includes an SPD to store a subscriber profilefor each subscriber of the mobile communications network, where theprofile includes at least an indication of a media optimization priorityfor an associated subscriber.

Further, in accordance with a preferred embodiment of the presentinvention, the system includes a congestion management engine (CME) toselect at least one MDO method to be applied to at least one of theassociated subscriber data sessions in accordance with the indication ofa media optimization priority.

Still further, in accordance with a preferred embodiment of the presentinvention, the system includes an NTD to at least store thresholdcongestion values associated with the cell identifiers.

Additionally, in accordance with a preferred embodiment of the presentinvention, the system also includes a DPI enabled policy enforcementelement capable of analyzing the output network traffic to determinebandwidth used on a per-session basis.

Moreover, in accordance with a preferred embodiment of the presentinvention, the system also includes a policy control element to providethe MDO method to be applied to the mobile communications network.

Further, in accordance with a preferred embodiment of the presentinvention, the DPI enabled policy enforcement element is configured toamend subscriber requests for media content in accordance with asubscriber's profile, wherein the subscriber requests are detected inthe output network traffic.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter regarded as the invention is particularly pointed outand distinctly claimed in the concluding portion of the specification.The invention, however, both as to organization and method of operation,together with objects, features, and advantages thereof, may best beunderstood by reference to the following detailed description when readwith the accompanying drawings in which:

FIG. 1 is a schematic illustration of a novel subscriber level bandwidthoptimized mobile data network, constructed and operative in accordancewith a preferred embodiment of the present invention;

FIG. 2 is a schematic illustration of a novel bandwidth optimizationsystem to be implemented within the framework of the network of FIG. 1;

FIG. 3 is a block diagram of a novel congestion detection and reductionprocess 300, operative in accordance with a preferred embodiment of thepresent invention, to be executed by the system of FIG. 2; and

FIG. 4 is a schematic illustration of an exemplary network congestiontable, constructed and operative in accordance with a preferredembodiment of the present invention.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity. Further, where consideredappropriate, reference numerals may be repeated among the figures toindicate corresponding or analogous elements.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

In the following detailed description, numerous specific details are setforth in order to provide a thorough understanding of the invention.However, it will be understood by those skilled in the art that thepresent invention may be practiced without these specific details. Inother instances, well-known methods, procedures, and components have notbeen described in detail so as not to obscure the present invention.

The focus of prior art MDOs for the prevention/reduction of networkcongestion has largely focused on network-wide solutions. Unfortunately,implementing such methods on such a large scale may be impracticaland/or prohibitively expensive. For example, to transcode all of themedia content transmitted on a typical mobile network, thousands ofdigital signal processors (DSPs) would have to be installed andmaintained to provide the required processing power. Wide scaletransrating may have limited scope—it cannot change the video codec typein use and it may only be used as long as it doesn't significantlyimpact the perceived quality of media content downloads. Overuse oftraffic shaping may suffer from the same issues, and may eventually leadto customer dissatisfaction. Caching and MLA are similarly limited ineffective scope: caching is only relevant for frequently used mediacontent, and MLA requires the active participation of third partycontent servers.

Applicant has realized that MDOs may be more effective if applied on apinpoint basis, as needed in cells that are congested at the time ofapplication. In such a manner, instead of using the prior art approachof preventing congestion by brute force, only subscribers in cells thatare already congested may be subjected to the inconvenience of bandwidthrestriction by MDO application.

Applicant has further realized that maximum benefit may be derived fromMDOs by using the customer profile of each of the subscribers currentlyin the congested cell to determine which, if any, of the available MDOsmay be applied to optimize the bandwidth requirements of each subscriberseparately. For example, the mobile network operator may determine thata business subscriber may be entitled to view high quality videos evenduring congestion periods, whereas a private subscriber with a familymember discount may be restricted to lower quality videos, if at all,during congestion periods.

Reference is now made to FIG. 1, which illustrates a novel subscriberlevel bandwidth optimized mobile data network 100, constructed andoperative in accordance with a preferred exemplary embodiment of thepresent invention. Network 100 may be a typical 3GPP network and maycomprise antennas 20, radio network controllers (RNC) 30, serving GPRSsupport node (SGSN) 40, core network 50, GPRS data packet sampler 55,gateway GPRS support node (GGSN) 60, and connect with Internet 70 andservice network 80. Network 100 may also comprise bandwidth optimizingsystem (BOS) 200. It will be appreciated that the depiction of network100 as a 3GPP may be exemplary; the present invention may be implementedwithin the framework of any mobile or wireless network providingInternet connectability. For example, network 100 may also be an LTE orWIMAX network which may comprise different control elements, such as,for example, SGWs and PGWs, to provide Internet connectability.

Subscriber devices 10 may connect to network 100 via antennas 20. Inaccordance with an exemplary embodiment of the present invention, thecell served by antenna 20A may be congested. Multiple devices 10 may beconnected with antenna 20A, each one of which may be in the process ofdownloading media content. As discussed hereinabove, four or fivedevices downloading media contact may be sufficient to cause congestionin the affected cell.

RNCs 30 may control the connections between devices 10 and antennas 20,and send/receive data associated with the connections to/from SGSN 40.It will be appreciated that devices 10 may capable of achieving bothvoice and data connections with network 100. However, since the primaryfocus of the MDOs to be applied may be to reduce congestion caused bymedia content, only network elements with data connection relevance areshown in FIG. 1.

Data associated with devices 10 may be routed through core network 50 bySGSN 40 and GGSN 60. In a typical a GPRS/UMTS network, SGSN 40 and GGSN60 together facilitate the “tunneling” of the associated data throughcore network 50 in order to connect devices 10 to Internet 70 and/orservice network 80. It will be appreciated that the depiction of network100 as a GPRS/UMTS network may be exemplary; the present invention mayalso be configured to work with other technologies, such as, forexample, LTE or WIMAX.

When transmitting to Internet 70 or service network 80, GGSN 60 mayconvert GPRS data packets received from SGSN 40 to packet data protocol(PDP) format appropriate for Internet 70 and/or service network 80.Similarly, when receiving transmissions from Internet 70 or servicenetwork 80, it may convert the packets to an internal mobile networkpacket format, such as, for example, 3GPP format.

It will be appreciated that while in internal mobile network packetformat, the packets may include information that may identify thesubscriber device and its current cell location, as well detailsregarding any IP connectivity external to core network 50. Internalformat data packet sampler 55 may inspect the data packets and forwardthe device/location identifiers along with the IP addresses of theassociated IP sessions to BOS 200. As will be described hereinbelow, BOS200 may use this information along with information derived from the PDPformatted packets output by GGSN 60 to determine which cells may becongested, which subscriber devices may be active in the congested cellsand what applications may be running on those devices. In accordancewith a preferred embodiment of the present invention, sampler 55 may bea RADIUS server. However, it will be appreciated that the presentinvention may include any suitable utility capable of inspectinginternal mobile network data packets and/or maintaining a database ofuser location information in core network 50.

Reference is now made to FIG. 2 which illustrates a novel BOS 200,constructed and operative in accordance with a preferred embodiment ofthe present invention. BOS 200 may comprise subscriber profile database(SPD) 210, network topology database (NTD) 220, network awareness engine(NAE) 230, network sampling interface 240, network congestion table(NCT) 250, congestion management engine (CME) 260, Network MDO interface270 and MDOs 280.

SPD 210 and NTD 220 may provide NAE 230 with generally static referencedata that may be used to determine whether or not a cell is sufferingfrom congestion and which subscribers are currently using it.Specifically, SPD 210 may store information that may be used todetermine the level of service and particular MDOs to use for a givensubscriber in response to a given level of congestion. For example, SPD210 may store an identifier (i.e. phone number), device type, serviceplan, optimization procedure and associated network parameters for eachsubscriber of network 100 (FIG. 1). It will be appreciated that SPD 210may be created using data from a typical mobile operator customerdatabase, and may be periodically updated as per changes in the customerdatabase. Alternatively, SPD 210 may be defined as a view of existingdata in the customer database.

NTD 220 may store reference data that may be used to determine whetheror not a given cell may be congested. For example, NTD 220 may store alist of cell sites, their total bandwidth capacities, associatedcongestion thresholds, and/or maximum number of concurrent users. NAE230 may compare the data in NTD 220 to actual observed network activityto determine whether or not a given cell may be congested.

From time to time, NAE 230 may receive subscriber/device data fromsampler 55 (FIG. 1). NAE 230 may also periodically receive networksampling data via network sampling interface 240. Network samplinginterface 240 may invoke policy enforcement (PE) element 245 to acquirethe network sampling data. PE element 245 may comprise functionality forinspecting IP packets and determining the application for which they maybe intended. For example, PE element 245 may inspect IP packetstransmitted by GGSN 60 (FIG. 1) and determine that they belong to a VOIPapplication. As will be discussed in detail hereinbelow, NAE 230 maycross reference the results of this determination along with referencedata from SPD 210 and NTD 220 and the subscriber/device data receivedfrom sampler 55 to generate network congestion table 250.

PCT patent application PCT/IL08/000829, entitled “A DPI MATRIXALLOCATOR” and filed Jun. 18, 2008, which is assigned to the commonassignees of the present invention and hereby incorporated in itsentirety by reference, discloses a system and method for deep packetinspection. In accordance with a preferred embodiment of the presentinvention, the functionality for PE element 245 may be provided by thesystem and method for DPI as disclosed in PCT patent applicationPCT/IL08/000829. However, it will be appreciated that the presentinvention may include any suitable functionality that may be capable ofdetermining the required information from an IP packet.

CME 260 may periodically review network congestion table to identifysubscriber connections to be optimized from among those associated withcongested cells. CME 260 may select subscribers for optimization basedon their profiles as represented in SPD 210. In general, as describedhereinbelow, a subscriber's feature plan may indicate its priority whenCME 260 selects subscriber connections for optimization. The higher asubscriber's priority, the less likely it may be that its connection maybe optimized by CME 260.

It will be appreciated that traffic shaping, as described hereinabove,may be a built-in feature of CME 260, implemented in conjunction withthe subscriber's profile in SPD 210. CME 260 may apply traffic shapingand/or associate one or more MDOs 280 with a given subscriberconnection. In accordance with a preferred embodiment of the presentinvention, MDOs 280 may include one or more of MLA engine 280A,transcoder 280B, transrater 280C, Cacher 280D and TTV engine 280E. Itwill be appreciated that the present invention may include any othersuitable MDO as well.

PC element 275 may be a control agent that may be authorized to provideinstructions to core network 50 regarding subscribers' connections. CME260 may use PC element 275 via network MDO interface 270 to implementoptimization procedures on selected subscriber connections.

It will be appreciated that the depiction of BOS 200 as a single entitymay be exemplary. The present invention may also include embodiments inwhich the functionality provided by BOS 200 may be provided by two ormore servers accessing either internal or external databases.

Reference is now made to FIG. 3 which illustrates a novel congestiondetection and reduction process 300, operative in accordance with apreferred embodiment of the present invention. In accordance with apreferred embodiment of the present invention, process 300 may beexecuted on a repeating basis by BOS 200.

NAE 230 may invoke PE element 245 to monitor (step 310) datatransmissions transmitted between GGSN and Internet 70 and/or servicenetwork 80. It will be appreciated that NEA 230 may not be locatedwithin core network 50, but rather may inspect its data traffic after ithas been converted to a standard IP format. PE element 245 may provideNAE 230 with details regarding the data transmissions, including, forexample, relevant IP addresses, bandwidth requirements/usage, and thetype of data being transmitted. In some cases, PE element 245 may evendiagnose which specific application may be running.

NAE 230 may cross reference the IP addresses provided by PE element 245with those provided by data packet sampler 55 (FIG. 1) to map eachsampled transmission to a specific subscriber/cell. In accordance with apreferred embodiment of the present invention, sampler 55 may be aRadius server. However, it will be appreciated that any product orservice providing the required level of packet inspection functionalitymay also be included in the present invention.

It will be appreciated that data packet sampler 55 (FIG. 1) may processonly a percentage of the actual data traffic in network 50. However,Applicant has realized that network congestion may typically be causedby data connections lasting for at least several minutes; shorterconnections may tend to use significantly less aggregate bandwidth andare accordingly less significant when approximating congestion levels.Applicant has also realized that most “power users” that make frequentheavy use of data connections in a mobile environment make typically doso from a static location. Accordingly, even though periodic sampling bysampler 55 may theoretically miss a user that may move from cell tocell, the overall effect may be minimal.

NAE 230 may then compare (step 320) the aggregate usage for subscribersin the same cell with target bandwidth thresholds for each of the cellsas read from NTD 220. Cells that have exceeded their targets may becongested. NAE 230 may update (330) network congestion table 250 toreflect the results of step 320. In accordance with a preferredexemplary embodiment of the present invention, each subscriber/devicemay be assigned a row in table 250, such that each cell may have severalentries. FIG. 4, to which reference is now also made, may represent anexemplary network congestion table 250, constructed and operative inaccordance with a preferred embodiment of the present invention.

Each of rows 251 may represent a subscriber (column 253) in a particularcongested cell (column 252). For example, the first row 251 in table 250may represent subscriber S-1 in cell 20A. The value in column 254 mayrepresent the bandwidth used by subscriber S-1, and the entry in column255 may represent the application in use by subscriber S-1 as per adiagnostic run by PE element 245. It will be appreciated that table 250that rows 251 may represent data only for congested cells; non-congestedcells may not be represented in table 250.

In accordance with an exemplary embodiment of the present invention,table 250 may also be updated with details of each subscriber's profilethat may affect their “bandwidth entitlement”, such as, for example, anindication of subscriber package as listed in column 256. Depending onits configuration, table 250 may also include other relevant informationsuch as customer type, added features, etc. Alternatively, the profiledetails may be looked up as needed from SPD 210 using the subscriberidentifier from column 252. It will be appreciated that therepresentation of subscriber identifiers in table 250 may be exemplary;in actual production subscriber telephone numbers may typically be used.After updating table 250, NAE 230 may repeat the process by returning tostep 310.

In parallel to the repeated updating of table 250 by NAE 230, CME maydetect (step 340) changes in table 250. For example, as shown in FIG. 4,table 250 may indicate that cell 20A (FIG. 1) may currently be currentlycongested by its four subscribers with data connections. Three of thesubscribers may be using 500 Kbps, and the fourth 2.5 Mbps. Theaggregate bandwidth in use for cell 20A (i.e. 4 Mbps) may cross athreshold for congestion as defined in NTD 220.

For every cell that may be defined as congested, CME 260 may identify(step 350) which of the cell's subscriber connections should beoptimized. In general, the decision whether to optimize a givenconnections may be a function of the bandwidth in use and thesubscriber's profile. In the exemplary representation of FIG. 4,subscriber S-4 may be using the most bandwidth. However, the terms ofits “business premium” subscriber package may grant S-4 higher priorityfor bandwidth usage. In such a case, CME may then determine which of theother connections may be optimized instead. S-1, S-2 and S-3 may all beusing the same bandwidth, but the “standard” subscriber package may beentitled to higher priority than “3^(rd) member family discount”.Accordingly, the connection for subscriber S-2 may be identified foroptimization.

CME 260 may also identify (step 360) the target application to beoptimized. For example, S-2 may be running a media sharing applicationsuch as, for example, YouTube, while S-1 may be using a VOIPapplication, such as, for example, Skype. It will be appreciated thatsome MDOs 280 (FIG. 2) may be more appropriate for some applicationsthan others. For example, Cacher 280D may be appropriate for cachingfrequently downloaded media files, yet inappropriate for VOIPapplications. Accordingly, CME 260 may identify the target applicationsin use prior to determining which MDO 280 to use for optimization.

CME 260 may also use the target application when determining whichsubscriber connection to optimize. For example, as shown in FIG. 4, S-1may be using a voice application and have a “standard” subscriberpackage. The standard subscriber package may place lower priority onVOIP than on media sharing. In such a case, CME 260 may identify (step350) S-1 for optimization instead of S-2 as in the previous embodiment.It will be appreciated that the business logic for determining which, ifany, subscriber connections to optimize, may be configurable; thepresent invention may include any suitable logic that may be predicatedon analysis of the subscriber's profile to make such a determination. Itwill similarly be appreciated that such configuration may includechanging the order of steps 350 and 360 and/or executing themiteratively.

CME 260 may also be configured with business logic to determine (370)the appropriate MDO 280 (or combination of MDOs 280) to use for eachsubscriber connection to be optimized. For example, TTV engine 280E maybe irrelevant for VOIP applications that may not make significant use ofbuffers, such applications may be optimized more efficiently usingtransrater 280C. Cacher 280D may only be appropriate for frequentlydownloaded media files. Transcoder 280B may require more processingpower than other MDOs 280 and its use may accordingly be restricted as afunction of how the overall level of congestion in network 50. MLAengine 280A may require previous agreement with the subscriber and/orthe media provider. Once determined, CME 260 may apply (step 380) theappropriate MDO (s) 280 by invoking PC element 275 via network MDOinterface 270.

In accordance with a preferred embodiment of the present invention, asubscriber's profile in SPD 210 may indicate that the subscriber's dataconnections may be optimized using MLA engine 280A. If the subscriberhas a data connection in a congested cell, CME 260 may check that theapplication is suitable for MLA optimization, i.e. that it is a mediacontent application using a media content server that may be configuredto support MLA optimization. Based on the specific cell's load and itscapacity, PC element 275 may be invoked to provide new traffic shapingrestrictions to mobile network 50, including, for example, a new maximumbit rate.

The subscriber device may in time sense the change in its allottedbandwidth. In response, it may signal the MLA enabled media server towhich it is connected that its bandwidth may have changed. It will beappreciated that such a signal may be included as part of a protocol fordownloading media content from an MLA enabled media server. Upon receiptof such a signal, the media server may adjust its content deliverymethod accordingly.

It will be appreciated that, as described hereinabove, MLA engine 280Amay not directly contact the MLA enabled media server to trigger achange in the content delivery method. Instead, MLA engine 280A mayindirectly trigger such a change by affecting the delivery environment;the subscriber device and media server may actually negotiate therequired adaptation in light of currently available bandwidth.

However, in accordance with another preferred embodiment of the presentinvention, MLA engine 280A may also be configured to directly triggersuch a change in content delivery method. For example, high definition(HD) media content may generally require more bandwidth to download andview. A subscriber profile in SPD 210 may indicate that the subscribermay not be entitled to view HD media content. The subscriber may berestricted from downloading HD media content depending on current cellcongestion levels, or alternatively the restriction may even apply atall levels of congestion.

It will be appreciated that if the subscriber attempts to request an HDmedia content download, PE element 245 may detect the request whilemonitoring (FIG. 3, step 310) outgoing data traffic from the subscriber.In accordance with a preferred embodiment of the present invention, PEelement 245 may be configured to intercept such a request, and amend itto indicate a request for a non-HD format. MLA engine 280A may invoke PEelement 245 to do so in accordance with a subscriber's profile.

It will be appreciated, that over time, congestion may subside inpreviously congested cells. In such cases, NAE 230 may update networkcongestion table 250 by deleting the associated cell/subscriber rows.CME 260 may detect such deletions in step 340 and remove (step 245) anyMDOs assigned to the associated cells.

It will also be appreciated that BOS 200 may be configured todetect/recognize multiple levels of congestion and to apply differentMDOs 280 (or different combinations of MDOs 280) depending on the levelof congestion. For example, for cell 20A aggregate usage of of 3.5 Mbpsmay be “level 1” congested; 3.75 Mbps may be “level 2”; and 4 Mbps maybe “level 3”. Accordingly, in addition to factoring in cell andsubscriber information, CME 260 may also consider congestion level whenapplying MDOs. For example, for the same cell/subscriber, CME 260 mayapply transcoder 280B for congestion level 1, and transrater 280C forlevels 2 and 3.

In accordance with a preferred embodiment of the present invention,network congestion table 250 may be implemented with a GUI interface toprovide a real time presentation of the state of congestion in mobilenetwork 50. The rows and/or columns of table 250 may be color coded toindicate the severity, nature and/or causes of congested cells.

Unless specifically stated otherwise, as apparent from the precedingdiscussions, it is appreciated that, throughout the specification,discussions utilizing terms such as “processing,” “computing,”“calculating,” “determining,” or the like, refer to the action and/orprocesses of a computer, computing system, or similar electroniccomputing device that manipulates and/or transforms data represented asphysical, such as electronic, quantities within the computing system'sregisters and/or memories into other data similarly represented asphysical quantities within the computing system's memories, registers orother such information storage, transmission or display devices.

Embodiments of the present invention may include apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the desired purposes, or it may comprise ageneral-purpose computer selectively activated or reconfigured by acomputer program stored in the computer. Such a computer program may bestored in a computer readable storage medium, such as, but not limitedto, any type of disk, including floppy disks, optical disks,magnetic-optical disks, read-only memories (ROMs), compact discread-only memories (CD-ROMs), random access memories (RAMs),electrically programmable read-only memories (EPROMs), electricallyerasable and programmable read only memories (EEPROMs), magnetic oroptical cards, Flash memory, or any other type of media suitable forstoring electronic instructions and capable of being coupled to acomputer system bus.

The processes and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct a more specializedapparatus to perform the desired method. The desired structure for avariety of these systems will appear from the description below. Inaddition, embodiments of the present invention are not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the invention as described herein.

While certain features of the invention have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents will now occur to those of ordinary skill in the art. It is,therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

What is claimed is:
 1. A method for alleviation of congestion in amobile communications network which comprises a cellular core network,the method comprising: (a) detecting congested cells in said corecellular network; (b) sampling and analyzing packets, that are ininternal mobile network packet format, at an internal format data packetsampler that is connected to said core cellular network at a locationbetween a service support node of said core cellular network and agateway support node of said core cellular network; (c) based on saidsampling and analyzing of said packets that are in internal mobilenetwork packet format, and based on analysis of other data packets thatare in packet data protocol (PDP) format and are outputted by saidgateway support node, identifying subscribers with active data sessionsin said congested cells; and (d) optimizing bandwidth usage for aparticular subscriber of said identified subscribers.
 2. The method ofclaim 1, wherein said detecting comprises: receiving cell and datasession identifiers from an internal network data packet sampler;inspecting data packets emanating from said mobile communicationsnetwork to at least determine bandwidth used for each current datasession; cross referencing said data session identifiers with said eachconcurrent data session to calculate aggregate bandwidth in use for eachcell in said mobile communications network according to associated saidcell identifiers; and determining that said cells with said aggregatedbandwidth exceeding a predetermined threshold are congested.
 3. Themethod of claim 2, wherein said identifying comprises: receivingsubscriber identifiers from said internal network data packet sampler;for each said congested cell, cross referencing said data sessionidentifiers with said each concurrent data session to identifysubscribers with active data sessions in said congested cells; andassociating their said bandwidth usage according to said bandwidth usedfor each data session.
 4. The method of claim 1, wherein said optimizingcomprises: for each said identified subscriber, determining anoptimization priority as per a subscriber profile; selecting at leastone said identified subscriber in each said congested cell foroptimization; determining at least one appropriate media deliveryoptimization (MDO) function at least in accordance with said subscriberprofile for each said selected identified subscriber; and transmitting arequest to said mobile communications network to optimize said bandwidthusage for said selected identified subscriber in accordance with said atleast one appropriate MDO function.
 5. The method of claim 4, whereinsaid appropriate MDO function is at least one of: traffic shaping,wherein policies on user bandwidth are enforced on a per subscriberbasis; transcoding, wherein media encoding used for said current datasession is changed to a different encoding format to facilitate a changein bandwidth requirements; transrating, wherein a total media contentbit rate is reduced without changing said media encoding; caching,wherein a copy of media content is stored internally to avoid repeateddownloads from an external source.
 6. The method of claim 4, whereinsaid appropriate MDO function is time-to-view (TTV) manipulation,wherein delivery rate of media content is regulated to generally matchviewing rate on a communications device of said selected identifiedsubscriber, said viewing rate detected during said inspecting.
 7. Themethod of claim 4, wherein said appropriate MDO function is media linkadaptation (MLA); wherein a subscriber communications device uses atransport protocol to signal a media content server regarding availablebandwidth for downloading particular media content, and said mediacontent server selects and downloads a version of said particular mediacontent in accordance with said available bandwidth.
 8. The method ofclaim 4, wherein said at least one appropriate MDO is a combination ofat least two appropriate MDOs.
 9. The method of claim 4, wherein saidoptimizing comprises: transmitting a request to said mobilecommunications network to stop said optimizing in accordance with saidMDO for all associated selected identified subscribers if an associatedsaid cell is no longer congested.
 10. The method of claim 2, whereinsaid predetermined threshold is stored in a network topology database(NTD); wherein said NTD stores at least one said predetermined thresholdfor each said cell in said mobile communications network.
 11. The methodof claim 2, wherein said inspecting comprises: performing deep packetinspection (DPI) to detect said bandwidth used and an identifier forsaid current data session, wherein said identifier for said current datasession is used for said cross referencing.
 12. The method of claim 1,wherein identifying subscribers with active data sessions in saidcongested cells comprises: (A) receiving network sampling data from anetwork sampling interface by invoking a policy enforcement element toacquire network sampling data from an Internet Protocol network externalto said cellular core network; (B) performing Deep Packet Inspection(DPI) on IP packets that are transmitted by said gateway support node;(C) based on said DPI of said IP packets, determining whether or notsaid IP packets belong to a particular application running on saidcellular device of said particular subscriber; (D) receiving subscriberdata and device data from said internal format data packet sampler; (E)generating a network congestion table by cross-referencing the resultsof the determining of step (C), with said subscriber data and devicedata obtained from said internal format data packet sampler in step (D).13. The method of claim 1, comprising: (A) at a Policy Enforcement (PE)element that is external to said cellular core network, monitoring datatransmissions of Internet Protocol (IP) packets that are transmittedbetween the gateway supporting node and the Internet; (B) at said PEelement that is external to said cellular core network, monitoring datatransmissions of IP packets that are transmitted between the gatewaysupporting node and a service network that is external to the cellularcore network; (C) based on the monitoring of step (A) and the monitoringof step (B), obtaining: (a) IP addresses associated with said datatransmissions of IP packets, (b) bandwidth requirements of said datatransmissions of said IP packets, (c) actual bandwidth usage of saiddata transmissions of said IP packets, (d) a type of data beingtransmitted in each of said data transmissions of said IP packets, and(e) a specific application that is running in each of said datatransmissions of IP packets; (D) cross-referencing the obtained IPaddresses received from said PE element, with IP addresses provided bythe internal format data packet sampler, wherein the cross-referencingcomprises mapping each sampled transmission to a specific subscriberdevice and a specific cell.
 14. The method of claim 1, whereinoptimizing bandwidth usage comprises: (A) by periodically analyzing saidnetwork congestion table, identifying subscriber connections to beoptimized from among subscribers that are associated with a congestedcell; (B) selecting a particular subscriber for optimization based on asubscriber profile associated with said subscriber and stored in aSubscriber Profile Database (SPD); wherein the selecting takes intoaccount, at least, a subscriber features plan of said particularsubscriber which may indicates a level of priority of said subscriber;wherein the selecting avoids optimization of mobile connections ofhigh-priority subscribers.
 15. The method of claim 1, wherein optimizingbandwidth usage comprises: (A) based on DPI analysis, determining that afirst subscriber device is using a media sharing application; (B) basedon DPI analysis, determining that a second subscriber device is using aVoice over Internet Protocol (VoIP) application; (C) based on said twodetermining steps, selectively applying a first Media DeliveryOptimization (MDO) function to a communication session of the firstsubscriber device, and selectively applying a second, different, MDOfunction to a communication second of the second subscriber device. 16.The method of claim 1, wherein optimizing bandwidth usage comprises: (A)based on DPI analysis, determining that a first subscriber device isusing a media sharing application; (B) based on DPI analysis,determining that a second subscriber device is using a Voice overInternet Protocol (VoIP) application; (C) based on said two determiningsteps, selectively applying a caching function as a first Media DeliveryOptimization (MDO) function only to a communication session of the firstsubscriber device and not to a communication session of the secondsubscriber device.
 17. The method of claim 1, wherein optimizingbandwidth usage comprises: for a group of three-or-more subscriberdevices, that are each determined to utilize high bandwidth in acongested cell, performing: (A) determining that a first subscriberdevice of said group is associated with a premium subscriber account,and determining not to apply any Media Delivery Optimization (MDO)function to a communication session of said first subscriber device; (B)determining that a second subscriber device is associated with anon-discounted subscriber account, determining that the third subscriberaccount is associated with a discounted subscriber account, andselectively applying an MDO function only to the communication sessionof the third subscriber account and not to a communication session ofthe second subscriber account.
 18. The method of claim 1, whereinoptimizing bandwidth usage comprises: (A) based on DPI analysis,determining that a particular subscriber device is using a Voice overInternet Protocol (VoIP) application which does not utilize buffers; (B)based on said determining, selecting not to activate towards saidparticular subscriber device a time-to-view manipulation MDO function,and selecting to activate towards said particular subscriber deviceanother MDO function.
 19. The method of claim 1, wherein optimizingbandwidth usage comprises: (A) based on DPI analysis, determining that aparticular subscriber device is using a particular application; (B)determining that bandwidth for said particular application isoptimize-able if a transcoding MDO function is applied; (C) determiningnot to apply said transcoding MDO function to said particular subscriberdevice by taking into account a processing power restriction of thecongested cell and by taking into account an overall level of congestionin said cellular core network.
 20. A system comprising: (I) a BandwidthOptimization System (BOS), comprising a server, for alleviation ofcongestion in a mobile communications network which comprises a cellularcore network; wherein said BOS is to detect congested cells in saidcellular core network; (II) an internal format data packet sampler,comprising a server, that is connected to said core cellular network ata location between a service support node of said core cellular networkand a gateway support node of said core cellular network; wherein saidinternal format data packet sampler is to sample and analyze packetsthat are in internal mobile network packet format; wherein, based onsampling and analyzing of said packets that are in internal mobilenetwork packet format, and based on analysis of other data packets thatare in packet data protocol (PDP) format and are outputted by saidgateway support node, the BOS is to identify subscribers with activedata sessions in said congested cells; (III) a Congestion ManagementEngine (CME) to optimize bandwidth usage for a particular subscriber ofsaid identified subscriber, wherein at least one of: the BOS, theinternal format data packet sampler, and the CME, is implemented byutilizing at least a hardware component.
 21. A method comprising:detecting congested cells in a core cellular network; sampling andanalyzing packets, wherein the packets are in internal mobile networkpacket format, at an internal format data packet sampler that isconnected to the core cellular network at a location between a servicesupport node of the core cellular network and a gateway support node ofthe core cellular network; based on the sampling and analyzing of thepackets in internal mobile network packet format, and based on analysisof other data packets that are in packet data protocol (PDP) format andare outputted by the gateway support node, identifying subscribers withactive data sessions in the detected congested cells; and optimizingbandwidth usage for a particular subscriber of the identifiedsubscribers.
 22. An apparatus comprising: one or more processors; andmemory storing instructions that, when executed by the one or moreprocessor, cause the apparatus to: detect congested cells in a corecellular network; sample and analyze packets, wherein the packets are ininternal mobile network packet format, at an internal format data packetsampler that is connected to the core cellular network at a locationbetween a service support node of the core cellular network and agateway support node of the core cellular network; and based on thesampling and analyzing of the packets in internal mobile network packetformat, and based on analysis of other data packets that are in packetdata protocol (PDP) format and are outputted by the gateway supportnode, identify subscribers with active data sessions in the detectedcongested cells; and optimize bandwidth usage for a particularsubscriber of the identified subscribers.
 23. A system comprising: afirst server comprising: one or more first processors; and first memorystoring instructions that, when executed by the one or more firstprocessor, cause the first server configured to sample and analyzepackets in a core cellular network, wherein the packets are in internalmobile network packet format, at an internal format data packet samplerthat is connected to the core cellular network at a location between aservice support node of the core cellular network and a gateway supportnode of the core cellular network; and a second server, operativelyconnected to the first server, comprising: one or more secondprocessors; and second memory storing instructions that, when executedby the one or more second processor, cause the second server configuredto: detect congested cells in a cellular core network; identifysubscribers with active data sessions in said congested cells, whereinthe identification is based on the sampled and analyzed packets andbased on analyzed packets that are in packet data protocol (PDP) formatand are outputted by the gateway support node; and optimize bandwidthusage for a particular subscriber of the identified subscribers.
 24. Thesystem of claim 23, wherein the second server further comprises asubscriber profile database configured to store data associated witheach subscriber in a mobile communications network, wherein the mobilecommunications network comprises the cellular core network, wherein, foreach subscriber, the data associated with the subscriber comprises anidentifier of the subscriber, a device type, a service plan identifier,and a optimization procedure.
 25. The system of claim 24, wherein thesecond server further comprises a network awareness engine configured todetermine whether a cell is suffering from congestion.
 26. The system ofclaim 25, wherein the second server further comprises a databaseconfigured to store at least one of: a list of cell sites, totalbandwidth capacities of the cell sites, associated congestionthresholds, and a maximum number of concurrent subscribers.